var util = require("./../../utils/util");
const api = require('../../config/api.js');
var app = getApp();
// pages/public-item/public-item.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    selectType: {}, // 房间类型
    selectFloor: {},  // 所属楼层
    selectDeposit: {},
    imageList: [],
    images: [], // 房间图片数组
    hidden: true,
    facilities: [], // 所有设施列表
    houseTypes: [], // 所有房间类型
    floors: [], // 所有楼层
    region: ['广东省', '广州市', '海珠区']
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getRoomRelate();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

  // 获取地址
  getLocation: function () {
    var self = this;
    wx.chooseLocation({
      success: function (result) {
        console.log(result);
        self.setData({
          address: result.address
        });
      },
      fail: function (error) {
        console.log(result);
      }
    });
  },

  bindHouseTypePickerChange: function (e) {
    var self = this;
    var chooseItem = self.data.houseTypes.filter(function (item) { return +item.id === +e.detail.value + 1 })[0]
    this.setData({
      selectType: chooseItem
    })
  },
  bindFloorPickerChange: function (e) {
    var self = this;
    var chooseItem = self.data.floors.filter(function (item) { return +item.id === +e.detail.value + 1 })[0]
    this.setData({
      selectFloor: chooseItem
    })
  },
  bindDepositsPickerChange: function (e) {
    var self = this;
    var chooseItem = self.data.deposits.filter(function (item) { return +item.id === +e.detail.value })[0]
    this.setData({
      selectDeposit: chooseItem
    })
  },

  /**
   * 选择图片
  **/
  chooseImages: function () {
    var self = this;
    wx.chooseImage({
      count: 8, // 默认9
      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
      success: function (res) {
        // 返回选定照片的本地文件路径列表，tempFilePath可以作为img标签的src属性显示图片
        var tempFilePaths = res.tempFilePaths;
        for (var i = 0; i < tempFilePaths.length; i++) {
          if (!util.isInArray(self.data.imageList, tempFilePaths[i])) {
            self.data.imageList.push(tempFilePaths[i]);
          }
        }
        self.data.imageList = self.data.imageList.length <= 8 ? self.data.imageList : self.data.imageList.slice(0, 8)
        console.log(self.data.imageList)
        self.setData({
          imageList: self.data.imageList
        });
      },
      complete: function () {
        console.log(self.data.imageList)
        self.uploadimg(self.data.imageList);
      }
    })
  },

  //多张图片上传
  uploadimg: function (data) {
    console.log(data)
    var that = this,
      i = data.i ? data.i : 0,
      success = data.success ? data.success : 0,
      fail = data.fail ? data.fail : 0;
    wx.uploadFile({
      url: api.uploadRoomThumb,
      filePath: data[i],
      name: 'room_pic',
      formData: null,
      success: (resp) => {
        success++;
        console.log(resp)
        console.log(i);
        if (resp.statusCode == 200) {
          var item = JSON.parse(resp.data);
          console.log(item)
          that.data.images.push(item.data.photoId);
        }

        //这里可能有BUG，失败也会执行这里
      },
      fail: (res) => {
        fail++;
        console.log('fail:' + i + "fail:" + fail);
      },
      complete: () => {
        console.log(i);
        i++;
        if (i == data.length) { //当图片传完时，停止调用   
          console.log('执行完毕');
          console.log('成功：' + success + " 失败：" + fail);
        } else {//若图片还没有传完，则继续调用函数
          console.log(i);
          data.i = i;
          data.success = success;
          data.fail = fail;
          that.uploadimg(data);
        }
        console.log(that.data.images)
      }
    });
  },
  // 预览图片
  previewImage: function (e) {
    var self = this,
      //获取当前图片的下表
      index = e.currentTarget.dataset.index,
      //数据源
      pictures = self.data.imageList;
    wx.previewImage({
      //当前显示下表
      current: pictures[index],
      //数据源
      urls: pictures
    })
  },

  // 删除图片
  deleteImage: function (e) {
    var self = this;
    wx.showModal({
      title: '',
      content: '确定要删除该图片??',
      success: function (res) {
        if (res.confirm) {
          var index = e.currentTarget.dataset.index;
          self.data.imageList.splice(index, 1);
          self.setData({
            imageList: self.data.imageList
          });
        } else if (res.cancel) {
          console.log('用户点击取消')
        }
      }
    })
  },
  setCoverImage: function (e) {
  },
  // 预览提示图片
  previewQuestImage: function (e) {
    var self = this,
      //获取当前图片的下表
      index = e.currentTarget.dataset.index,
      //数据源
      pictures = self.data.questImages;
    wx.previewImage({
      //当前显示下表
      current: pictures[index],
      //数据源
      urls: pictures
    })
  },
  /**
   * 获取房间相关所有设备列表/类型/楼层
   */
  getRoomRelate: function () {
    var self = this;
    util.request(api.roomRelateUrl, 'post').then(function (res) {
      if (res.errno === 0) {
        self.setData({
          facilities: res.data.facility,
          houseTypes: res.data.roomType,
          selectType: res.data.roomType[0],
          floors: res.data.floors,
          selectFloor: res.data.floors[0]
        });
      }
    });
  },
  /**
   * 获取房间类型
   */
  // getRoomTypeList: function () {
  //   util.request(api.roomTypeListUrl, { page: 1, size: 50 }, 'post').then((res) => {
  //     if (res.errno === 0) {
  //       this.setData({
  //         houseTypes: res.data.result.data,
  //         selectType: res.data.result.data[0]
  //       });
  //     }
  //   });
  // },
  publicRoom: function (e) {
    var item = {
      facility_id: e.detail.value.facility.length > 0 ? e.detail.value.facility.join(',') : '',
      photo_id: this.data.images.length > 0 ? this.data.images.join(',') : '',
      user_id: app.globalData.userInfo.id
    }
    for (let i in e.detail.value) {
      item[i] = e.detail.value[i]
    }

    item.province = this.data.region[0];
    item.city = this.data.region[1];
    item.country = this.data.region[2];

    let self = this;
    console.log(item)
    var message = '';
    // 判断名称是否为空
    if (e.detail.value.name == '') {
      message = '房间名称不能为空';
      return wx.showToast({
        title: message,
        icon: 'none',
        duration: 2000
      });
    }
    // 判断名称是否为空
    if (e.detail.value.name == '') {
      message = '房间名称不能为空';
      return wx.showToast({
        title: message,
        icon: 'none',
        duration: 2000
      });
    }

    // 判断名称是否为空
    if (e.detail.value.price == '') {
      message = '房间价格不能为空';
      return wx.showToast({
        title: message,
        icon: 'none',
        duration: 2000
      });
    }

    // 判断面积是否为空
    if (e.detail.value.area == '') {
      message = '房间面积不能为空';
      return wx.showToast({
        title: message,
        icon: 'none',
        duration: 2000
      });
    }

    // 判断房东联系电话是否为空
    if (e.detail.value.telephone == '') {
      message = '房东联系电话不能为空';
      return wx.showToast({
        title: message,
        icon: 'none',
        duration: 2000
      });
    }

    if (e.detail.value.contact == '') {
      message = '房东名称不能为空';
      return wx.showToast({
        title: message,
        icon: 'none',
        duration: 2000
      });
    }
    self.setData({
      hidden: false
    });
    util.request(api.roomAddUrl, item, 'post').then(function (res) {
      if (res.errno === 0) {
        /**
         * 跳转到我的发布列表页面
        */
        self.setData({
          hidden: true
        });
        wx.showToast({
          title: '发布成功',
          icon: 'success',
          duration: 2000
        });
        wx.navigateTo({ url: './../my-room/list?id=' + app.globalData.userInfo.id });
      }
    });
  },
  /**
   * 省市区联动
  */
  bindRegionChange: function (e) {
    this.setData({
      region: e.detail.value
    })
  }
})